home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 4: GNU Archives / Linux Cubed Series 4 - GNU Archives.iso / gnu / binutils.7 / binutils / binutils-2.7 / gas / aclocal.m4 < prev    next >
Encoding:
M4 Source File  |  1996-07-04  |  1.8 KB  |  59 lines

  1. dnl GAS_CHECK_DECL_NEEDED(name, typedefname, typedef, headers)
  2. AC_DEFUN(GAS_CHECK_DECL_NEEDED,[
  3. AC_MSG_CHECKING(whether declaration is required for $1)
  4. AC_CACHE_VAL(gas_cv_decl_needed_$1,
  5. AC_TRY_LINK([$4],
  6. [
  7. typedef $3;
  8. $2 x;
  9. x = ($2) $1;
  10. ], gas_cv_decl_needed_$1=no, gas_cv_decl_needed_$1=yes))dnl
  11. AC_MSG_RESULT($gas_cv_decl_needed_$1)
  12. test $gas_cv_decl_needed_$1 = no || {
  13.  ifelse(index($1,[$]),-1,
  14.     [AC_DEFINE([NEED_DECLARATION_]translit($1, [a-z], [A-Z]))],
  15.     [gas_decl_name_upcase=`echo $1 | tr '[a-z]' '[A-Z]'`
  16.      AC_DEFINE_UNQUOTED(NEED_DECLARATION_$gas_decl_name_upcase)])
  17. }
  18. ])dnl
  19. dnl
  20. dnl Some non-ANSI preprocessors botch requoting inside strings.  That's bad
  21. dnl enough, but on some of those systems, the assert macro relies on requoting
  22. dnl working properly!
  23. dnl GAS_WORKING_ASSERT
  24. AC_DEFUN(GAS_WORKING_ASSERT,
  25. [AC_MSG_CHECKING([for working assert macro])
  26. AC_CACHE_VAL(gas_cv_assert_ok,
  27. AC_TRY_LINK([#include <assert.h>
  28. #include <stdio.h>], [
  29. /* check for requoting problems */
  30. static int a, b, c, d;
  31. static char *s;
  32. assert (!strcmp(s, "foo bar baz quux"));
  33. /* check for newline handling */
  34. assert (a == b
  35.         || c == d);
  36. ], gas_cv_assert_ok=yes, gas_cv_assert_ok=no))dnl
  37. AC_MSG_RESULT($gas_cv_assert_ok)
  38. test $gas_cv_assert_ok = yes || AC_DEFINE(BROKEN_ASSERT)
  39. ])dnl
  40. dnl
  41. dnl Since many Bourne shell implementations lack subroutines, use this
  42. dnl hack to simplify the code in configure.in.
  43. dnl GAS_UNIQ(listvar)
  44. AC_DEFUN(GAS_UNIQ,
  45. [_gas_uniq_list="[$]$1"
  46. _gas_uniq_newlist=""
  47. dnl Protect against empty input list.
  48. for _gas_uniq_i in _gas_uniq_dummy [$]_gas_uniq_list ; do
  49.   case [$]_gas_uniq_i in
  50.   _gas_uniq_dummy) ;;
  51.   *) case " [$]_gas_uniq_newlist " in
  52.        *" [$]_gas_uniq_i "*) ;;
  53.        *) _gas_uniq_newlist="[$]_gas_uniq_newlist [$]_gas_uniq_i" ;;
  54.      esac ;;
  55.   esac
  56. done
  57. $1=[$]_gas_uniq_newlist
  58. ])dnl
  59.